﻿/***********************************************************************
 * <copyright file="IGroupMenuDescription.cs" company="VidaGIS">
 * -->    Copyright (C) statement. All right reserved
 * </copyright>
 * 
 * Created:   Hoang Bich Son 
 * Email:    sonhb@vidagis.com or bichson2002@gmail.com
 * Website:
 * Create Date: Wednesday, November 26, 2014
 * Usage: 
 * 
 * RevisionHistory: 
 * Date         Author               Description 
 * 
 * ************************************************************************/

using System.Collections.Generic;
using BusinessCMS;

namespace DataCMS.Interfaces
{
    /// <summary>
    /// IGroupMenuDescription interface
    /// </summary>
    public interface IGroupMenuDescription
    {

        /// <summary>
        /// Gets the specified identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        GroupMenuDescription Get(long id);

        /// <summary>
        /// Gets the list by language identifier.
        /// </summary>
        /// <param name="languageId">The language identifier.</param>
        /// <returns></returns>
        IList<GroupMenuDescription> GetListByLanguageId(short languageId);

        /// <summary>
        /// Gets the pagging by language identifier.
        /// </summary>
        /// <param name="languageId">The language identifier.</param>
        /// <param name="currentPage">The current page.</param>
        /// <param name="totalRows">The total rows.</param>
        /// <returns></returns>
        IList<GroupMenuDescription> GetPaggingByLanguageId(short languageId, int currentPage, ref int totalRows);

        /// <summary>
        /// Creates the specified group menu description.
        /// </summary>
        /// <param name="groupMenuDescription">The group menu description.</param>
        /// <returns></returns>
        object Create(GroupMenuDescription groupMenuDescription);

        /// <summary>
        /// Updates the specified group menu description.
        /// </summary>
        /// <param name="groupMenuDescription">The group menu description.</param>
        /// <returns></returns>
        object Update(GroupMenuDescription groupMenuDescription);

        /// <summary>
        /// Deletes the specified identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        object Delete(long id);

    }
}
